package 线程状态.线程休眠;

public class test_买票 implements Runnable {
    private static int p = 10;

    //重写run()线程方法
    //synchronized 修饰符表示在进行线程调用是会检查这个资源是否已经有线程占用如果有就等等，其结束在充许下一个线程调用。（一次只充许一个线程调用资源）
    @Override
    public void run() {
        while (true) {
            if (p <= 0) {
                break;
            }
            try {
                System.out.println(Thread.currentThread().getName() + "-->拿到了第" + p-- + "张票");
                Thread.sleep(200);//设置线程休眠(时间越长发现问题的概率越大)
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        test_买票 t1 = new test_买票();
        new Thread(t1, "小明").start();
        new Thread(t1, "小红").start();
        new Thread(t1, "小花").start();

    }
}

